
package br.com.senacrs.validation;

import br.com.senacrs.model.UsuarioEN;

public class UsuarioVal implements Validation<UsuarioEN> {

    @Override
    public void validateInsert(UsuarioEN objeto) {
        validadeUsuario(objeto);
        validadeLogin(objeto);
        validadeSenha(objeto);
        validadeNome(objeto);
        validadeCidade(objeto);
        //validadeLogradouro(objeto);
        //validadeNumero(objeto);
        validadeTelefones(objeto);
        //validadeEmail(objeto);
        //validadeFoto(objeto);
    }




    @Override
    public void validateDelete(UsuarioEN objeto) {
        
    }

    @Override
    public void validateUpdate(UsuarioEN objeto) {
        validadeUsuario(objeto);
        validadeID(objeto);
        validadeLogin(objeto);
        validadeSenha(objeto);
        validadeNome(objeto);
        validadeCidade(objeto);
        //validadeLogradouro(objeto);
        //validadeNumero(objeto);
        validadeTelefones(objeto);
        //validadeEmail(objeto);
        //validadeFoto(objeto);
    }

    @Override
    public void validateSelectAll() {
        
    }

    @Override
    public void validateSelectAllOrderBy(String order) {
        
    }

    @Override
    public void validateSelectOne(Long id) {
        
    }

    @Override
    public void validateSelectOneGet(Long id) {
        
    }

    @Override
    public void validateSelectWhere(String criterio, String string) {
        
    }

    @Override
    public void validateSelectWhere(String criterio, Long valor) {
        
    }

    @Override
    public void validateSelectWhere(String criterio, String criterioJoin, Long valor) {
        
    }

    public void validateHasRules(UsuarioEN usuarioEN, String arquivo) {
        if (usuarioEN == null){
            throw new ValidationException("O usuario deve ser valido.");
        }
        if((usuarioEN.getNome() == null) || (usuarioEN.getNome().trim().isEmpty())){
            throw new ValidationException("O nome do usuario deve ser valido.");
        }
        if((arquivo == null) || (arquivo.trim().isEmpty())){
            throw new ValidationException("O nome do arquivo deve ser valido.");
        }
    }
    
    private void validadeUsuario(UsuarioEN objeto) throws ValidationException {
        if(objeto == null) {
            throw new ValidationException("Usuario deve ser valido.");
        }
    }
    
    private void validadeCidade(UsuarioEN objeto) throws ValidationException {
        if((objeto.getCidade() == null) || (objeto.getCidade().getId() == null)) {
            throw new ValidationException("A cidade deve ser valida.");
        }
    }

    private void validadeNome(UsuarioEN objeto) throws ValidationException {
        if((objeto.getNome() == null) || (objeto.getNome().trim().isEmpty())){
            throw new ValidationException("O nome deve ser valido.");
        }
    }

    private void validadeSenha(UsuarioEN objeto) throws ValidationException {
        if((objeto.getSenha() == null) || (objeto.getSenha().trim().isEmpty())) {            
            throw new ValidationException("A senha deve ser valida.");
        }
    }

    private void validadeLogin(UsuarioEN objeto) throws ValidationException {
        if((objeto.getLogin() == null) || (objeto.getLogin().trim().isEmpty())) {
            throw new ValidationException("O login deve ser valido.");
        }
    }
    
    private void validadeLogradouro(UsuarioEN objeto) throws ValidationException {
        if((objeto.getLogradouro() == null) || (objeto.getLogradouro().trim().isEmpty())) {
            throw new ValidationException("O logradouro deve ser valido.");
        }
    }
    
    private void validadeNumero(UsuarioEN objeto) throws ValidationException {
        if(objeto.getNumero() == null) {
            throw new ValidationException("O numero do endereço deve ser valido.");
        }
    }
    
    private void validadeTelefones(UsuarioEN objeto) throws ValidationException {
        if( (objeto.getTelResidencial() == null)) {
            throw new ValidationException("Informe um numero de telefone.");
        }
    }
    
    private void validadeEmail(UsuarioEN objeto) throws ValidationException {
        if((objeto.getEmail() == null) || (objeto.getEmail().trim().isEmpty())) {
            throw new ValidationException("O Email deve ser valido.");
        }
    }
    
     private void validadeFoto(UsuarioEN objeto) throws ValidationException {
        if((objeto.getFoto() == null) || (objeto.getFoto().length == 0)) {
            throw new ValidationException("A foto deve ser valida.");
        }
    }
     
    private void validadeID(UsuarioEN objeto) throws ValidationException {
        if(objeto.getId() == null) {
            throw new ValidationException("O Id deve ser valido.");
        }
    }
}
